// Electron主进程配置文件
// 使用CommonJS格式，方便主进程直接require

/**
 * 获取当前环境
 * @returns {string} 'development'或'production'
 */
function getEnvironment() {
  // 检查命令行参数是否包含--dev
  const isDev = process.argv.some(arg => arg === '--dev');
  // 也可以通过环境变量判断
  return isDev || process.env.NODE_ENV === 'development' ? 'development' : 'production';
}

const ENV = getEnvironment();

// 服务器配置
// exports.SERVER_CONFIG = {
//   // 开发环境配置
//   development: {
//     BASE_URL: 'http://localhost:5174/api',
//     API_HOST: 'localhost',
//     API_PORT: 5174,
//     API_PROTOCOL: 'http'
//   },
//   // 生产环境配置
//   production: {
//     BASE_URL: 'http://192.168.0.108:8081',
//     API_HOST: '192.168.0.108',
//     API_PORT: 8081,
//     API_PROTOCOL: 'http'
//   }
// };

exports.SERVER_CONFIG = {
  // 开发环境配置
  development: {
    BASE_URL: 'http://192.168.0.108:18080',
    API_HOST: '192.168.0.108',
    API_PORT: 18080,
    API_PROTOCOL: 'http'
  },
  // 生产环境配置
  production: {
    BASE_URL: 'http://192.168.0.108:18080',
    API_HOST: '192.168.0.108',
    API_PORT: 18080,
    API_PROTOCOL: 'http'
  }
};

// 获取当前环境的配置
exports.getCurrentConfig = function() {
  return exports.SERVER_CONFIG[ENV];
};

// 获取API基础URL
exports.getBaseUrl = function() {
  return exports.getCurrentConfig().BASE_URL;
};

// 应用通用配置
exports.APP_CONFIG = {
  // 应用名称
  APP_NAME: '信息采集与分析系统',
  // 应用版本（可从package.json读取）
  APP_VERSION: '1.0.1',
  // 窗口配置
  WINDOW: {
    WIDTH: 1200,
    HEIGHT: 800,
    MIN_WIDTH: 800,
    MIN_HEIGHT: 600
  },
  // 模板变量配置
  TEMPLATE_VARS: [
    { key: 'task_name', label: '任务名称' },
    { key: 'executor', label: '执行人' },
    { key: 'complete_time', label: '完成时间' },
    { key: 'result_summary', label: '结果摘要' },
    { key: 'data_count', label: '数据总量' },
    { key: 'error_count', label: '错误数量' },
    { key: 'success_rate', label: '成功率' },
    { key: 'task_id', label: '任务ID' },
    { key: 'report_time', label: '报告生成时间' },
    { key: 'system_name', label: '系统名称' }
  ],
  // 数据处理配置
  DATA_PROCESSING: {
    RENDER_BATCH_SIZE: 8,
    RENDER_BATCH_INTERVAL: 80000, // 毫秒
    DB_BATCH_SIZE: 8,
    DB_BATCH_INTERVAL: 80000, // 毫秒
    FILE_BATCH_SIZE: 10,
    FILE_BATCH_INTERVAL: 80000 // 毫秒
  },
  // 日志配置
  LOGGING: {
    // 日志文件大小限制（字节），这里设置为200MB
    MAX_FILE_SIZE: 200 * 1024 * 1024,
    // 最大保留的日志文件数量
    MAX_BACKUP_FILES: 10,
    // 文件滚动类型：'size'（按大小）, 'date'（按日期）, 'both'（两者结合）
    ROLLOVER_TYPE: 'both',
    // 日志级别控制，低于此级别的日志不会写入文件
    // 可选值: 'debug', 'info', 'warn', 'error'
    FILE_LOG_LEVEL: 'info',
    // 是否在控制台显示调试日志
    CONSOLE_DEBUG: false
  }
};

// 导出当前环境
exports.ENV = ENV;

// 导出是否为开发环境
exports.isDevelopment = ENV === 'development';

// 确保所有变量都已定义后再导出完整配置
exports.default = {
  ENV: exports.ENV,
  isDevelopment: exports.isDevelopment,
  SERVER_CONFIG: exports.SERVER_CONFIG,
  APP_CONFIG: exports.APP_CONFIG,
  getCurrentConfig: exports.getCurrentConfig,
  getBaseUrl: exports.getBaseUrl
};